#pragma once

enum IDImage
{
	IMG_UP = 0,  // 0
	IMG_45_DEGREE, // 1
	IMG_RIGHT_LEFT, // 2
	IMG_315_DEGREE, //3
	IMG_DOWN,// 4
	IMG_STAND,// 5
	IMG_JUMP,// 6
	IMG_RUN_SHOOT,
	IMG_RUN_WATER_RIGHT,
	IMG_RUN_WATER_UP,
	IMG_RUN_WATER_45,
	IMG_RUN_WATER_DROP,
	IMG_RUN_WATER_SHOOT_0,
	IMG_PlasmaGun,
	IMG_SpreadGun,
	IMG_Laser,
	IMG_MachineGun,
	IMG_EnemyGun,
	IMG_FireBall,
	IMG_MAP1,
	IMG_MAP2,
	IMG_HumandExplode,
	IMG_MachineExplode,
	IMG_BlueExplode,
	IMG_ItemBLock,
	IMG_ItemGun,
	IMG_BlockTank,
	IMG_BlockTank2,
	IMG_Bridge,
	IMG_SoldierRun,
	IMG_SoldierJump,
	IMG_SoldierSniper_45,
	IMG_SoldierSniper_90,
	IMG_SoldierSniper_135,
};

enum ShootDirection
{
	_0_SHOOT = 0,
	_30_SHOOT = 30,
	_45_SHOOT = 45,
	_60_SHOOT = 60,
	_90_SHOOT = 90,
	_270_SHOOT = 270,
	_300_SHOOT = 300,
	_315_SHOOT = 315,
	_330_SHOOT = 330,
	NONE,
};


enum TypeMove
{
	Move_UnderWater = 0,
	Move_OnTheLand,
};

enum IDStatus
{
	BEFORE_DIE,
	DIE,
	JUMP_UP,
	AFTER_JUMP,
	STAND,
	FALL_DOWN
};

enum IDGun
{
	Plasma_Gun = 0,
	Spread_Gun,
	Laser_Gun,
	Machine_Gun,
	FireBall_Gun,
	Enemy_Gun
};

enum ItemStatus
{
	PROTECTED = 0,
	CAN_BREAK,
	CAN_GIVE
};

enum IDITem
{
	M_Item = 0,
	R_Item,
	S_Item,
	L_Item,
	F_Item,
};

enum Auto
{
	DECREASE,
	INCREASE,
	INCREASE_X,
	DECREASE_X,
	INCREASE_Y,
	DECREASE_Y,
};

enum SpriteEffect
{
	None = 0,
	Flip,
};

enum ExplodeType
{
	MACHINE = 0,
	HUMAND,
	BLUE
};
enum DirectionBlockTank
{
	_12_Direction= 2,
	_1_Direction,
	_2_Direction,
	_3_Direction,
	_4_Direction,
	_5_Direction,
	_6_Direction

};


struct Box
{
	float x, y;
	float width, height;

	float vx, vy;

	Box(){}

	Box(float x, float y, float w, float h, float vx = 0.0f, float vy = 0.0f)
	{
		this->x = x;
		this->y = y;

		width = w;
		height = h;

		this->vx = vx;
		this->vy = vy;
	}
};

enum DIR
{
	NONE_DIR = 0,
	LEFT,
	RIGHT,
	TOP,
	BOTTOM
};


struct ObjectTittle
{
	int m_Index;
	int m_X;
	int m_Y;
	int m_Id;
	int m_Width;
	int m_Height;

	ObjectTittle(int id = 0, int index = 0, int x = 0, int y = 0, int width = 0, int height = 0)
	{
		m_Id = id;
		m_Index = index;
		m_X = x;
		m_Y = y;
		m_Width = width;
		m_Height = height;
	}
};